package com.chen.posp.util.iso8583;


/**
 * @author rong.zhu
 */
public class Field8583 implements Cloneable {

	public final static int FLD_MAX_SIZE = 999 + 3; // 字段最大长度
	/**
	 * 域名称
	 */
	private double id;

	/**
	 * 这个域的最大的长度
	 */
	private int length;

	/**
	 * 长度类型
	 */
	private LengthType lengthType;
	/**
	 * 每个域可放的数据的类型
	 */
	private DataType dataType;
	/**
	 * 是否可选，如果value是null 或"" 那么就不发送这个域 如果填了一定要验证数据的正确性 当然只有发送的时候才有必要检查
	 */
	private boolean option = false;// false--表示是必选项
	/**
	 * 编码方式
	 */
	private EncodeType encodeType;// 编码方式
	/**
	 * 域中的值
	 */
	private String value;
	
	private byte[] byteValue;

	public Field8583(double id, int length, LengthType lengthType, DataType dataType, EncodeType encodeType) {
		this.id = id;
		this.lengthType = lengthType;
		this.dataType = dataType;
		this.length = length;
		this.encodeType = encodeType;
	}

	public double getId() {
		return id;
	}

	public void setId(double id) {
		this.id = id;
	}

	public int getLength() {
		return length;
	}

	public void setLength(int length) {
		this.length = length;
	}

	public LengthType getLengthType() {
		return lengthType;
	}

	public void setLengthType(LengthType lengthType) {
		this.lengthType = lengthType;
	}

	public DataType getDataType() {
		return dataType;
	}

	public void setDataType(DataType dataType) {
		this.dataType = dataType;
	}

	public boolean isOption() {
		return option;
	}

	public void setOption(boolean option) {
		this.option = option;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public EncodeType getEncodeType() {
		return encodeType;
	}

	public void setEncodeType(EncodeType encodeType) {
		this.encodeType = encodeType;
	}

	public byte[] getByteValue() {
		return byteValue;
	}

	public void setByteValue(byte[] byteValue) {
		this.byteValue = byteValue;
	}

}
